package tcm.com.gistone.util;

/**
 * Created by qiang on 2017/12/8.
 */
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

@Component
@Configuration
/**
 * 获取文件路径
 */
public  class UrlUtil {
    @Autowired
    private ConfigUtil configUtil;

    /**
     * 结合传入的参数，返回当前文件操作路径
     * @param strUrl 实际功能需要的文件夹名称  “Files/”
     * @return
     */
    public String geturl(String strUrl) {
        //获取当前类的物理路径
        //debug：“file:/D:/work/201711/nrme/target/classes/com/gistone/nrme/util/UrlsUtil.class”
        //production:“file:E:/apache-tomcat-8.5.8-80-nrme/webapps/nrme/WEB-INF/classes/com/gistone/nrme/util/UrlsUtil.class”
        String classFilePath = this.getClass().getResource("UrlUtil.class").toString();

        //定义返回值
        String urlFile = "";

        //根据配置文件中的RunningStatus决定是开发环境还是生产环境，开发环境是在编译器中执行代码，生产环境一般是打包后在tomcat中部署，这两种环境对路径的获取是不一样的
        if (!configUtil.getRunningStatus().equals("debug")) {
            //如果是生产环境，传入的strUrl参数为“Files/”
            //configUtil.getWebAppName()获取的是项目名，也是在配置文件中保存的，因为有的项目是需要部署到ROOT文件夹下，所以项目名需要特别指出
            //那么处理后的文件路径为：“E:/apache-tomcat-8.5.8-80-nrme/webapps/nrme/Files/”
            urlFile = classFilePath.substring(6,classFilePath.indexOf(configUtil.getProjectName()) + configUtil.getProjectName().length()) + strUrl;
        } else {
            //如果配置文件中系统状态为“debug”，传入的strUrl参数为“Files/”
            //那么截取后的文件路径为：“D:/work/201711/nrme/target/classes/Files/”
            urlFile = classFilePath.substring(6,classFilePath.indexOf("classes/") + 8) + strUrl;
        }
        return urlFile;
    }

}